package philbot;

/**
 * The states enum allows us to solve a key problem
 * 
 * In phutball finding the list of possible jumping moves is NP hard
 * 
 * An alternative is to treat a jump as a sequence of moves instead of a single move.
 * The states represent the possible move types
 */
public enum States {
	/**
	 * NULLMOVE is a move where the player can do nothing
	 * The move after a NULLMOVE is always a JUMP
	 */
	NULLMOVE, 
	/**
	 * START is a move where the player can place a piece or jump
	 * Placing a piece means the next move is a START
	 * Jumping means the next move is a NULLMOVE
	 */
	START, 
	/**
	 * JUMP is a move where the player can jump or do nothing
	 * Jumping means the next move is a NULLMOVE
	 * Doing nothing means the next move is a START
	 */
	JUMP
}
